package com.xuhao.didi.socket.common.interfaces.common_interfacies.server;

import com.xuhao.didi.core.protocol.IReaderProtocol;
import com.xuhao.didi.socket.common.interfaces.common_interfacies.client.IDisConnectable;
import com.xuhao.didi.socket.common.interfaces.common_interfacies.client.ISender;

import java.io.Serializable;

public interface IClient extends IDisConnectable, ISender<IClient>, Serializable {
    /**
     * ip
     *
     * @return 获取本机ip
     */
    String getHostIp();

    /**
     * 获取主机名
     *
     * @return 名
     */
    String getHostName();

    /**
     * 获取标签
     *
     * @return 标签
     */
    String getUniqueTag();

    /**
     * 协议
     *
     * @param protocol 协议
     */
    void setReaderProtocol(IReaderProtocol protocol);

    /**
     * 回调
     *
     * @param clientIoCallback io回调
     */
    void addIoCallback(IClientIOCallback clientIoCallback);

    /**
     * 删除回调
     *
     * @param clientIoCallback 回调
     */
    void removeIoCallback(IClientIOCallback clientIoCallback);

    /**
     * 全部删除
     */
    void removeAllIoCallback();
}
